System and method for configuring the remote control functionality of a portable device

ABSTRACT

A system and method used to configure a smart device to command functional operations of a target appliance. The smart device retrieves from a controllable appliance, such as a settop box, data indicative of a codeset identity of the target appliance wherein the codeset identity was determined during a process used to configure a conventional universal remote control to command functional operations of the target appliance and wherein the process used to configure the conventional universal remote control is performed in cooperation with the controllable appliance. A remote control application resident on the smart device then uses the data indicative of the codeset identity retrieved from the controllable appliance to also configure the smart device to command functional operations of the target appliance.

RELATED APPLICATION INFORMATION

This application is a continuation of and claims the benefit of U.S.application Ser. No. 14/245,195, filed on Apr. 4, 2014, whichapplication is a continuation-in-part of and claims the benefit of U.S.patent application Ser. No. 14/184,298, filed on Feb. 19, 2014, whichapplication is a continuation of and claims the benefit of U.S. patentapplication Ser. No. 13/198,172, filed on Aug. 4, 2011, whichapplication is a continuation-in-part of and claims the benefit of U.S.patent application Ser. No. 13/198,072, filed Aug. 4, 2011 whichapplication was also a continuation-in-part of and claims the benefit ofU.S. patent application Ser. No. 13/026,768, filed Feb. 14, 2011, whichapplication is a continuation of U.S. patent application Ser. No.12/768,325, filed Apr. 27, 2010, (now U.S. Pat. No. 7,969,514), whichapplication is a continuation of U.S. patent application Ser. No.11/515,962, filed Sep. 5 2006, (now U.S. Pat. No. 7,907,222). Thedisclosure within each of these referenced applications is incorporatedherein by reference in its entirety.

BACKGROUND

Personal communication, productivity, and entertainment devices such astablet computers, smart phones, portable email devices, e-books,hand-held games and/or game controllers, portable media players, etc.(all referred to hereafter as “smart devices”) are known to includefeatures such as graphical user interfaces on color touch screens,wireless Internet capability, support for ancillary applications(sometimes referred to as “apps”) such as, for example, calendars,email, maps and navigation, etc. Such ancillary applications may bepre-installed in a smart device or may be made available for download bya user. Certain such apps may comprise an ability to issue commands toentertainment and other appliances, for example in conjunction with aGUI offering the features and functionality of a universal remotecontrol as known in the art, in conjunction with a TV guide display toenable channel selection, etc. Typically such remote control apps may beprovisioned with a library of command data and protocols suitable forcontrolling a plurality of appliances of different type and/ormanufacture (a so-called “universal remote”). Such a command library andthe hardware necessary to transmit operational commands to appliancesmay be incorporated into or made available to the smart device itself,or may take the form of a separate external device which is placed incommunication with the smart device (i.e., a relay device or so-called“blaster”). Regardless, upon initial installation or subsequentreplacement of a controlled appliance such universal remote control appsmust generally be configured to match each particular appliance to becontrolled to an appropriate set of command data and a protocol in thelibrary. Disclosed herein are user-friendly and convenient methods forconducting such a configuration process.

SUMMARY OF THE INVENTION

This invention relates generally to remote control systems and, moreparticularly, to a system and method for facilitating the set up andconfiguration of a portable device, e.g., a smart device which mayincorporate universal remote control functionality, to command operationof one or more types of remotely controllable appliances of one or moremanufacturers. Exemplary smart devices include but are not limited toApple's “iPhone” and “iPad,” Google's “Android” platform, Nintendo's“Wii U” controller, Blackberry's “Torch” or “PlayBook,” etc. Exemplarytypes of appliances include, but are not limited to televisions, digitalvideo disc players (DVDs), cable or satellite set top boxes (STBs),digital video recorders (DVRs), audio video (AV) receivers, thermostats,game consoles, lighting systems, etc.

In order to rapidly and conveniently configure a smart device app andassociated command library to match the appliances to be controlled, inone exemplary embodiment of the teachings of the instant invention thesmart device may be temporarily connected to an appliance to ascertainthat appliance's identity and thereby determine appropriate command dataand protocol for control of that appliance. When said appliance is incommunication with other remotely controllable appliances to form partof a local entertainment and/or environmental system, the identities ofthose other appliances may also be determined by the smart device, usingthe connected appliance as an agent. In a second exemplary embodiment ofthe teachings of the instant invention, the smart device may communicatewith an appliance which has previously participated in the set up ofanother universal remote control in order to receive from that appliancethe configuration settings arrived at during that previous set upprocess.

Additionally, in some embodiments configuration information regardingsaid local system may be communicated to the smart device by the agentappliance for use in the creation of activity macros; for use inlocalization of smart app displayed labels and menus; etc. Suchinformation may comprise, by way of example, data regarding which mediasource appliances are attached to which input ports of a renderingdevice such as a TV monitor or AV receiver, thereby facilitating thecreation of pre-configured smart device command sequences for use ininitiating activities such as “Watch TV”, “Listen to Music”; languageand menu settings of the connected appliance(s); etc.

In one exemplary embodiment, the physical and logical interconnectionsbetween smart device and appliance, and amongst appliances, may be inaccordance with the High Definition Media Interface (HDMI) specificationand appliance identities may be derived from, inter alia, ConsumerElectronic Control (CEC) or Extended Display Identification Data (EDID)data retrievable from appliances in compliance with that specification,and/or from Source Product Description (SPD) information frames embeddedin a source appliance digital video stream in accordance with theConsumer Electronics Association specification CEA-861. However, it willbe appreciated that other interconnection methods and/or protocols suchas, by way of example without limitation USB, IEE1394 “Firewire”, UPnP,CEbus, etc. may be utilized to the same end, when appropriate for aparticular embodiment.

A better understanding of the objects, advantages, features, propertiesand relationships of the invention will be obtained from the followingdetailed description and accompanying drawings which set forthillustrative embodiments and which are indicative of the various ways inwhich the principles of the invention may be employed.

BRIEF DESCRIPTION OF THE DRAWINGS

For a better understanding of the various aspects of the invention,reference may be had to preferred embodiments shown in the attacheddrawings in which:

FIGS. 1 a and 1 b illustrate exemplary systems in which a smart deviceapp configured in accordance with the instant invention may be utilized;

FIG. 2 illustrates exemplary interconnections which may be used duringconfiguration of the smart device(s) of FIG. 1 in accordance with afirst embodiment of the invention;

FIG. 3 illustrates a series of steps which may be performed by a smartdevice during an HDMI enabled setup process;

FIG. 4 illustrates an exemplary appliance identity database record whichmay be utilized in configuring a smart device app in accordance withthis invention;

FIG. 5 illustrates a further exemplary system in which configuration ofthe smart device(s) of FIG. 1 may be accomplished in accordance with asecond embodiment of the invention;

FIG. 6 illustrates a series of steps which may be performed by a smartdevice during an appliance enabled setup process; and

FIG. 7 illustrates a further series of steps which may be performed by asmart device during an HDMI enabled setup process.

DETAILED DESCRIPTION

By way of example, FIGS. 1 a and 1 b illustrate exemplary systems 102and 104 wherein a smart device 100 may be adapted to issue commands tocontrollable appliances such as a TV 106, set top box (STB) 108, DVDplayer 110, etc. While illustrated in the context of a homeentertainment system comprising a TV, STB, and DVD player, it is to beunderstood that controllable appliances may include, but need not belimited to, televisions, VCRs, DVRs, DVD players, cable or satelliteconverter set-top boxes (“STBs”), amplifiers, AV receivers, CD players,game consoles, home lighting, drapery, fans, HVAC systems, thermostats,personal computers, etc. In the illustrative example of FIG. 1 a, asmart device 100 may include both a universal remote control app and thenecessary hardware to enable direct transmission of commands toappliances 106 through 110. Appliance commands may be issued in the formof infrared signals 112 as illustrated, or in any other suitable format,e.g., via an RF signal such as contemplated by RF4CE, Zwave, Bluetooth,etc.; ultrasonic signal; visible light; etc. as appropriate for thecontrol of each particular appliance. In the example of FIG. 1 a thesecommand signals may be issued directly by smart device 102 using, forexample, the technology described in co-pending U.S. patent applicationSer. No. 13/043,915 which is incorporated herein by reference in itsentirety. In an alternative embodiment illustrated in FIG. 1 b,appliance commands 112 may be issued indirectly via a relay device 114which is responsive to wireless communications 116 received from theuniversal remote control app resident in smart device 100, for exampleas described in co-pending U.S. patent application Ser. No. 13/071,661,also incorporated herein by reference in its entirety.

In either case, the remote control app and/or associated relay devicemust be provisioned with the specific command data and protocol (a“codeset”) to which each of the to-be-controlled appliances isresponsive. As is known in the art, this may take the form of a pointeror index into a library of codesets pre-stored locally in the memory ofsmart device 100 or of relay device 114; individual codesets downloadedto those devices during a configuration process; an item-by-itemdownload of individual codeset command codes on an as-required basisfrom a library stored locally on a PC or on an appliance such as STB 108or TV 106, or stored remotely at a headend or internet accessibleserver; etc. Regardless, since the methods described herein toaccomplish the identification of suitable codesets for controlledappliances may be generally applied without regard to the exactmechanisms by which said codesets are finally provisioned, it is to beunderstood that the embodiment described hereafter is by way of exampleonly, and the techniques presented may pertain, mutatis mutandis, to anyof the various possible equipment and code library configurations.

With reference to FIG. 2, in one exemplary embodiment a remote controlapp resident on a smart device 100 (or any other device having controlcapabilities, such as a STB or the like) may be matched to theappliances to be controlled, for example a TV set 106 and/or a cable STB108 and DVD player 110 by temporarily connecting an HDMI port 206 ofsmart device 100 to an available HDMI port 210 of an appliance to becontrolled, e.g., TV 106 in the illustrative example, via an HDMIcompatible cable 208, via a HDMI capable wireless link, etc. Once theconnection is established, the remote app of smart device 100 may beplaced into a setup mode in which mode the app may solicit deviceidentification data from TV 106 such as, for example a CEC manufacturerID and/or an EDID manufacturer number and product code. In a preferredembodiment, the data so obtained may be uploaded from the smart deviceto a server 200 via, for example a WiFi connection 204 to the Internet202. Server 200 may include a database 216 which cross-references CECand/or EDID device identity data to appliance command codesets, whichdatabase may be referenced to determine an appropriate command codesetfor control of exemplary appliance 106. In alternate embodiments, thedatabase in which appliance command codesets are cross-referenced todata that is itself referenced according to a standard may be locallyresident in the smart device itself; or may be resident in an applianceaccessible as part of a WiFi network such as for example a local PC orSTB. Regardless, once determined, the desired codeset may then beprovisioned to the remote control app of smart device 100, in the formof a pointer or index into a local database; or in the form of adownloaded codeset block from a codeset database 218 stored on server200; etc.; as appropriate.

Turning now to the flowchart presented in FIG. 3, once an exemplarysmart device 100 has been placed into communication with an applianceusing, for example HDMI cable 208 or an HDMI wireless link, at step 300a setup program which forms part of a remote control app installed onthat smart device may be initiated, for example from a configuration orsettings menu as is well known in the art. At step 302, the setupprogram may commence by issuing successive CEC compatible <PollingMessage> transmissions (as defined in the HDMI specification andaccompanying CEC supplement) to each of the possible type-specific CEClogical device addresses. By way of explanation, the CEC protocol maysupport up to 16 possible logical address values, with each valueallocated to a particular appliance type: For example, a TV device mayonly assume logical address zero or 14; a playback device such as a DVDplayer may only use one of logical addresses 4, 8 or 11; a tuning devicemay only use one of logical addresses 3, 6, 7 or 10; etc. For purposesof receiving responses to a poll, the initiating device (smart device100 in this example) in accordance with one version of the CECspecification may always assume address 15. Though smart device 100 isphysically connected only to HDMI port 210 of TV 106, the CEC protocolallows for an appliance to act as a CEC Switch, i.e., to transparentlyroute CEC communications to/from appliances connected to its other HDMIports, such as STB 108 or DVD player 106 in the illustrative example.Accordingly in those instances where this functionality is supported bythe host appliance to which the smart device is tethered, the setupprogram may be thereby enabled to interrogate downstream appliances.

If no device responses to the issued polling messages are detected atstep 304 the setup program continues at step 320 to allow manualconfiguration by a user of the app. If, however, one or more responsesare detected, at step 306 a CEC <Give Device Vendor ID> message istransmitted to the first responsive logical address value. In accordancewith the CEC protocol, the appliance to which this message is directedmay respond with a unique 24-bit vendor ID, which number is assigned toCEC-compliant manufacturers by the IEEE in accord with the standard.Upon receipt, at step 308 this vendor ID number, together with the CEClogical address from which it originated (being indicative of appliancetype), may be forwarded by the setup program to a codeset identifier,for example a Web service resident on server 200.

Upon receiving a response from the codeset identifier service, at steps310 and 312 the setup program may determine if the response constitutesa positive identification of a codeset for use in issuing commands tothe indicated appliance, or if it comprises a request for additionalinformation by way of disambiguation. If neither, it is assumed that theidentifier service has failed to identify a suitable codeset, and thesetup program continues at step 318 to determine if additionalappliances remain to be identified. If the received response comprises arequest for additional disambiguation information, such information maybe retrieved at step 316 and forwarded to the codeset identificationservice for further processing. By way of example without limitation,such disambiguation data requests may be for Extended DisplayIdentification Data (EDID) as specified by the Video ElectronicsStandards Association (VESA), retrievable from display devices via theHDMI interface and which may for example includes data fieldscorresponding to a Microsoft-assigned manufacturer ID and/or amanufacturer-assigned product code; for a response to a <Get MenuLanguage> CEC request (which may be indicative of a territory/market inwhich the appliance is currently installed); for responses to <Give OSDName> or <Get CEC version> CEC requests; for retrieval of SPD datacorresponding to an input HDMI port of the host appliance (i.e. TV 106of the illustrative example) where such retrieval is supported by thehost appliance; etc.; as appropriate for a particular embodiment orappliance. By way of explanation regarding SPD data, CEA standardCEA-861B specifies that a digital video source may optionally insert aperiodic Source Product Description information frame into its outputvideo stream. This “InfoFrame” may comprise a seven byte ASCII vendorname, a sixteen byte ASCII product description such as a model number,and a one byte binary product type identifier (e.g., 01h is a digitalSTB, 02h is a DVD player, 05h is digital video camera, etc.) Renderingdevices such as TV 106 may optionally decode this data and use it toaugment on-screen menu displays, etc.

Alternatively or in addition to the above, since CEC-compliantappliances are required to issue a <Feature Abort> response to anymessage relating to an unsupported feature, in some embodiments acodeset identification service may request that certain CECtransmissions be initiated to an appliance and the resulting response(s)reported, to allow exact identification of an appliance by verificationof its support for certain features (or lack thereof).

If the received response is determined at step 310 to be indicative ofthe identity of an appliance control codeset, then at step 314 theremote control app of smart device 100 may be configured accordingly. Asis known in the art, such configuration may take the form of storing apointer to, or index into a preloaded local library of command codesets,provision of the required codeset as a data download from a server basedcodeset library 218, etc., as appropriate for a particular embodiment.Once configuration is completed, at step 318 the setup program nextdetermines whether additional appliances remain to be identified. If so,processing returns to step 306 to repeat the above identificationprocess for the next appliance. Once all appliances which responded tothe polling request of step 302 have been subjected to theidentification process, the setup continues at step 320, whereadditional user input may be solicited as necessary. Such user input maycomprise, for example, provision of explicit model number informationand/or codeset numbers, etc., to complete the identification andconfiguration of any appliances which were not responsive to the CECpolling request, which could not be uniquely identified by the automatedcodeset identification service, etc., after which the initialconfiguration of the remote control app of smart device 100 is complete.Since the various alternative methods for identification of appliancecommand codesets are well known in the art, for the sake of brevitythese will be discussed further herein.

With reference now to FIG. 4, an exemplary embodiment of an applianceidentification database 216 may comprise a group of records 400, one foreach distinctly identifiable appliance, each record comprising a seriesof fields 402 through 436′ as illustrated. In the example presented,each appliance record 400 may include a basic appliance identity 440which may comprise data fields such as appliance type 402, brand 404,model number 406, serial number or date range 408,410 (where necessaryto ensure unique identification, for example where a manufacturer haschanged an appliance feature in the middle of a model run) and theidentifier 412 of an appliance command codeset for use in commandingoperation of the appliance. In some instances, geographic or marketregion codes 414 may also form part of the basic appliance identity. Theinformation comprising this basic appliance identity may be utilized invarious prior art methods for configuring controlling devices to commandoperation of the appliance, for example matching a user provided brandand model number, printing set up code lists to be published in manuals,sequentially testing codesets corresponding to a particular appliancetype and brand (and sometimes region), etc., all as well known in theart.

In addition to the above basic appliance identity data, an exemplaryappliance identification database record 400 in accordance with theinstant invention may include additional fields 416 through 436′ whichcomprise a second, electronic, identity 450 for the same appliance. Suchan electronic identity may comprise a tabulation of data items which maybe solicited electronically from the appliance, for example via the HDMIinterconnection 208 of the illustrative embodiment. This data mayinclude without limitation a CEC vendor ID 416, a CEC version 418, a CECOSD name 420, an EDID manufacturer ID 422, an EDID product code 424, anEDID version/revision number 426, an SPD vendor name 428, and an SPDproduct description 430. In some embodiments, geographic region codes414 may also form part of an electronic appliance identity, since thesemay be derivable from CEC <Get Menu Language> responses. It should alsobe noted that, due to practices such as private labeling,multi-sourcing, etc., the vendor/manufacturer ID and name fields 416,422, and 428 are not necessarily synonymous with each other or withbrand field 404.

Where necessary to ensure a unique identity for an appliance, additionaldata fields may be part of an appliance identity record 400. These mayinclude for example further EDID discernable parameters 432 through432′, such as video formats and resolutions supported, timing data,etc., and/or CEC challenge/response data fields 434,436. Suchchallenge/response fields may comprise an electronic command or query434 to be issued to an appliance together with an expected response 436to be returned by the appliance. By way of example without limitation,to distinguish between similar cable STBs which differ only by thepresence or absence of a DVR option, a CEC <Give Deck Status> requestmay be issued in the expectation that the non-DVR STB response will be aCEC <Feature Abort> message. If necessary to ensure accurateidentification of a particular appliance, multiple challenge/responsedata fields 434′,436′ may be provided.

In the illustrative embodiment, with the exception of appliance type 402and codeset identifier 412, data fields which are not applicable or notavailable for a specific appliance may be set as “null”. For example,serial number range fields 408,410 may not be necessary, certainappliance types may not support EDID, etc.

In order to uniquely identify an appliance, an illustrative applianceidentification service resident on and/or associated with server 200,for example, implemented by instructions stored on a non-transient,computer readable media accessible by the server 200, and interactingwith an exemplary smart device set up app which operates generally inaccordance with the logic previously described in connection with theflowchart of FIG. 3, may receive an initial communication from smartdevice 100 comprising a CEC vendor ID together with an indication ofappliance type (e.g., the CEC logical address from which that vendor IDwas retrieved.) The appliance identification service may apply thosevalues as a mask to select only those records 400 of database 216 whichmatch the requested criteria, i.e., a match in field 402 with theappliance type implied by the CEC logical address value retrieved froman appliance and a match in field 416 with the CEC vendor ID retrievedfrom the appliance. It will be appreciated that in various embodimentsthe data content of this initial communication may comprise othervalues, such as for example an SPD vendor name and product description,in place of or in addition to the values mentioned above, in which casethe selection mask may be adjusted accordingly. If only a single matchresults, the identification is complete and the corresponding codesetidentifier value from field 412 of that record may be returned to thesetup app resident in smart device 100. If, however, multiple recordsmeet the selection criteria the appliance identification service maythen examine the contents of these records to determine which data fieldin that remaining subset exhibits the greatest diversity. Once thedetermination is made, a request for the retrieval of that data itemfrom the appliance may be forwarded to the setup app resident in smartdevice 100. When the requested data item is returned by the app, thisitem may be added to the selection mask and the selection processrepeated. In event that a requested item is not available, for examplethe current host appliance does not support SPD decoding and SPD datahas been requested, the smart device setup app may respond in thenegative in which case the currently requested item may be eliminatedfrom the appliance identification matching process and a new requestissued for an alternative data item. These steps may be iterated untileither a single database record remains and its codeset identifier 412can be communicated to the setup app; or no further selection criteriaare available, i.e., every field 414 through 436′ has either beenutilized or been found to contain a null value, in which case a failuremay be communicated to the smart device setup app, allowing it toinitiate a user message suggesting that an alternative set up method beemployed.

As further illustrated in FIG. 7, an exemplary smart device set up app,when invoked 700, may receive 702 an initial communication comprisingdata representative of a plurality of appliances within a homeentertainment system which includes an intended target appliance. Asbefore, such data may include an indication of appliance type (e.g., theCEC logical address from which that vendor ID was retrieved or the SPDdata.) The appliance identification service may then use the receiveddata, if sufficient to identify the target appliance 704, to configure714 the controlling device to issue commands to the target appliance,e.g., the identification is complete and the corresponding codesetidentifier value from field 412 of that record may be returned to thesetup app resident in smart device 100. If, however, data received fromthe appliances is not sufficient to identify the target appliance, theservice will use the received type identifying data to discern whichtype of appliance the target appliance is not 706. For example, if noSPD data is available for the intended target appliance but SPD data isreceived which identifies a blue-ray player and an A/V receiver withinthe home entertainment system, the service will apply those values as amask to select those records 400 of database 216 which do not match thedata provided, i.e., it will eliminate from consideration those codesetsthat are applicable only to blue-ray players and A/V receivers. If thisprocess of elimination then results in a single record match 710, thecorresponding codeset identifier value from field 412 of that record isbe returned to the setup app resident in smart device 100 for use inconfiguring 714 the smart device as described above. If, however,multiple records remain, a request for the retrieval of further dataitems from target appliance may be requested 712 and forwarded 716 tothe setup app resident in smart device 100 as described above. Asbefore, these steps may be iterated until either a single databaserecord remains and its codeset identifier 412 can be communicated to thesetup app; or no further selection criteria 718 are available, i.e.,every field 414 through 436′ has either been utilized or been found tocontain a null value, in which case a failure may be communicated to thesmart device setup app, allowing it to initiate a user messagesuggesting that an alternative set up method be employed.

Once fully provisioned with the command codesets necessary for controlof a consumer's appliances, in certain embodiments a smart device remotecontrol app in accordance with the instant invention may undergoadditional customization while in physical communication with thecontrolled appliances via the exemplary HDMI connection. In oneembodiment, the response(s) to a CEC <Get Menu Language> request may beutilized to adjust the menus, key labels, etc., of the remote controlapp to match those in use by the controlled appliances. Conversely, uponconsumer request the language to which the smart device is currentlyregionalized may be conveyed to the controlled appliances via a CEC <SetMenu Language> request, thereby adapting the appliance displays to matchthe user preference settings of the smart device.

In instances where an appliance such as TV 106 is adapted to perform thebeforementioned CEC switching function and is equipped to support such aquery, that switching appliance may be requested to indicate which ofits physical HDMI ports (e.g. 210 thru 214) are associated with whichdownstream CEC logical addresses (e.g., STB 108, DVD player 110, etc.)The data so acquired may then be utilized by a smart device remotecontrol app to configure activity macros, for example without limitation“Watch TV” or “Watch a movie”, such that a command to select theappropriate HDMI input of TV 106 will be automatically issued when theactivity is initiated. Such macro configuration may be completelyautomatic, or may require user input: For example where multiple mediaplayback appliances are detected in a configuration (e.g., both a DVDplayer and Vudu streaming video on demand box) a user may be prompted toselect which appliance is to be used for a “Watch movie” activity (itbeing understood that in cases such as this multiple “Watch movie”activities may also be configured). To facilitate user identification ofthe desired appliance, the prompt may include the appliancesself-provided identities retrieved using CEC <Get OSD name> requests,appliance brand names and/or model numbers supplied by a codesetidentification service, TV input port numbers, or any combinationthereof as appropriate.

Turning now to FIG. 5, in an alternate embodiment a remote control appresident in smart device 100, i.e., computer executable instructionsstored on a tangible readable media, may interact with an appliance suchas STB 108 to retrieve from that appliance the codeset identities whichhad been previously been determined during set up of a conventionaluniversal remote control 500 supplied in conjunction with thatappliance, e.g., STB 108. Such codeset identities may for examplecomprise information regarding the command data and protocols suitablefor control of TV 107 and DVD player 110. With reference to FIG. 6, inan exemplary method for accomplishing configuration of a smart phoneremote control app, at step 600 a user may initially configure auniversal remote control 500 using an interactive application residentin STB 108, for example as described in U.S. Pat. No. 7,969,514 and U.S.patent application Ser. No. 13/026,768, the disclosures of which areincorporated herein by reference in their entirety and of which thisdocument constitutes a continuation-in-part. Upon completion of the setup of remote control 500 in accordance with the teachings of thosedisclosures, the identities of the codesets to be utilized by remotecontrol 500 in commanding the operation of, for example TV 106 and DVDplayer 110, are known to and may be stored within STB 108.

Subsequently, at step 602 a user may acquire and install a remotecontrol app for a smart device, desirous of using that app to commandthe operation of the appliances of the system of FIG. 5. In accordancewith the teachings of this invention, at step 604 such a smart deviceapp may determine if a compatible STB appliance is present in the user'sequipment configuration, e.g, an appliance such as STB 108 which haspreviously conducted an interactive setup, stored codeset identities,and is capable of communicating these to smart device 100. Suchdiscovery and communication may for example be via a wireless connection502, using WiFi 204, Bluetooth, or any other protocol as convenient fora particular embodiment. The discovery of a compatible appliance(s) mayoccur automatically, e.g., when the smart device is initially invoked;may occur upon initial user configuration of the smart device app tocommand the operation of the compatible appliance (e.g. STB 108); may bemanually initiated by a user; etc.; or any combination thereof asappropriate. If no compatible appliance is detected at step 604, themethod may continue at step 614 to perform alternate configuration ofthe smart device app using methods such as those described previouslyherein or any other suitable appliance command set identification methodas known in the art.

If however a compatible appliance is detected, at step 606 the smartdevice app may offer a user the option of automatically configuring theapp to command the operation of the balance of the user's appliances. Ifthe user declines, the app continues with the alternate configurationmethods of step 614. If the user accepts, at step 610 the smart devicemay retrieve from the compatible appliance, e.g., STB 108, the codesetidentities applicable to the other appliances for which universal remotecontrol 500 has been set up to command the operation of Once theseidentities have been retrieved and loaded into the smart device, in someembodiments at step 612 a listing of the appliances to be added thesmart device app configuration may be displayed for user confirmation.As will be appreciated, such a listing may comprise the codesetidentifiers themselves, brand names and/or model numbers associated withthose identifiers (which may be included in the data retrieved from STB108; cross referenced in a database stored locally in smart device 100;retrievable from a remote database 216,218; or any combination thereof).Once the user has confirmed the desired configuration, at step 616 thesmart device may configure itself to command operation of the selectedappliances, for example as previously described in connection with step314 of FIG. 3. Additionally, in certain embodiments, in place of any ofthe methods of step 314 one or more of the appliance codesets (i.e.command data and protocol information) may be downloaded directly fromSTB 108 itself.

It will also be appreciated that SPD data retrieved from a device can beused to provide further services within the home entertainment system.For example, a first appliance (e.g., a smart TV) in communication witha second appliance (e.g., a STB) can use the SPD retrieved from a secondappliance to automatically download an app for use on the firstappliance that is relevant to the second appliance, e.g., an appappropriate for a content service provider associated with the secondappliance. In this example, the app may be an app to provide an EPG orEPG-like overlay on the first device first device where the datadisplayed by the first device is automatically synchronized with theoperation of the second device, such as by having the app use metadatawithin content streams received from the second device to automaticallyupdate what is being displayed thereby.

While various concepts have been described in detail, it will beappreciated by those skilled in the art that various modifications andalternatives to those concepts could be developed in light of theoverall teachings of the disclosure. For example, while the illustrativeequipment configuration presented above utilizes a television set as theHDMI interconnection focal point and host appliance for attachment of asmart device, or an STB for retrieval of previously-configured remotecontrol settings, it will be appreciated that in alternateconfigurations another device such as an AV receiver, a PC, a gameconsole, etc. may serve equally well as a host appliance or retrievalsource to which a smart device may be temporarily attached or with whicha smart device may communicate for set up purposes. Furthermore, inthose instances where no appliance in the configuration is capable ofsupporting CEC switch functionality, it will also be appreciated that asmart device in accordance with the invention may nevertheless beindividually attached to multiple appliances in sequence in order toperform an electronically-enabled setup. It will also be appreciatedthat in certain embodiments, for the sake of efficiency multipleappliance-identifying data items may be gathered and jointly forwardedto an appliance identification service as a single transaction, ratherthan in a step-by-step fashion as described above. Such information maybe transferred to the device being configured using an intermediatedevice which is capable of obtaining the needed information from thetarget appliances and for providing the same to the device beingconfigured. Additionally, while illustrated using an HDMI connection,CEC protocol, and EDID and SPD InfoFrame data values it will beappreciated that various other connectivity and appliance identificationdata gathering methods may be equally adaptable to the purposesdescribed herein, such as IP data; standards may evolve or be amended tosupport additional features; etc., and that accordingly the exemplaryappliance identification database contents presented herein are by wayof illustration only and not intended as an exhaustive tabulation of allpossible identification data points or parameters that are or may becomeavailable for utilization by the appliance identification methodsdescribed herein.

While described in the context of functional modules and illustratedusing block diagram and/or flowchart formats, it is to be understoodthat, unless otherwise stated to the contrary, one or more of thedescribed functions and/or features may be integrated in a singlephysical device and/or a software module, or one or more functionsand/or features may be implemented in separate physical devices orsoftware modules. It will also be appreciated that a detailed discussionof the actual implementation of each module is not necessary for anenabling understanding of the invention. Rather, the actualimplementation of such modules would be well within the routine skill ofan engineer, given the disclosure herein of the attributes,functionality, and inter-relationship of the various functional modulesin the system. Therefore, a person skilled in the art, applying ordinaryskill, will be able to practice the invention set forth in the claimswithout undue experimentation. It will be additionally appreciated thatthe particular concepts disclosed are meant to be illustrative only andnot limiting as to the scope of the invention which is to be given thefull breadth of the appended claims and any equivalents thereof.

All patents cited within this document are hereby incorporated byreference in their entirety.

What is claimed is:
 1. A method for configuring a controlling device tocommand functional operations of a first appliance, comprising:retrieving from a second appliance through use of a physical and logicalinterconnection with the second appliance data indicative of at least atype for the second appliance; using the data indicative of at least atype for the second appliance to determine a remaining possible type forthe first appliance wherein the remaining possible type for the firstappliance is exclusive of the type for the second appliance; using atleast the determined remaining possible type for the first appliance tolocate within a database, having a plurality of appliance recordswherein each of the plurality of appliance records within the databaseis cross-referenced to an appliance of an appliance type and a codesetfor use in configuring a controlling device to command functionaloperations of an appliance, at least one of the plurality of records;and using a codeset cross-referenced to one of the located at least oneof the plurality of records to configure the controlling device tocommand functional operations of the first appliance.
 2. The method asrecited in claim 1, wherein the data indicative of at least a type forthe second appliance comprises a Consumer Electronic Control (“CEC”)identifier assigned to the second appliance.
 3. The method as recited inclaim 1, wherein the data indicative of at least a type for the secondappliance comprises a Source Product Description (“SPD”) assigned to thesecond appliance.
 4. The method as recited in claim 1, wherein thecontrolling device selects a codeset from a library of codesets storedlocally in the controlling device whereupon the selected codeset is usedby the controlling device to issue command communications to the firstappliance.
 5. The method as recited in claim 1, wherein the controllingdevice initiates a retrieval of a codeset from a library of codesetsstored in a device located remotely with respect to the controllingdevice whereupon the retrieved codeset is used by the controlling deviceto issue command communications to the first appliance.
 6. A system foruse in commanding functional operations of a first appliance of a homeentertainment system, comprising: a controlling device; and a serverdevice in communication with the controlling device via a network;wherein the server device is associated with a database having aplurality of appliance records wherein each of the plurality ofappliance records within the database is cross-referenced to anappliance of an appliance type and a codeset for use in configuring acontrolling device to command functional operations of an appliance;wherein the server device is programmed to use data indicative of atleast a type for a second appliance of the home entertainment system toidentify one or more of the plurality of records within the database ashaving a codeset appropriate for use in configuring the controllingdevice to command functional operations of the first appliance and toprovide to the controlling device via the network at least one of thecodeset or a pointer to the codeset stored in the memory of thecontrolling device that is cross-referenced to the identified one ormore of the plurality of records with the database; and wherein thecontrolling device is programmed to use the at least one of the codesetor the pointer to the codeset stored in the memory of the controllingdevice received from the server device via the network to configureitself to control functional operations of the first appliance.
 7. Thesystem as recited in claim 6, wherein the data indicative of at least atype for the second appliance comprises a Consumer Electronic Control(“CEC”) identifier assigned to the second appliance.
 8. The system asrecited in claim 6, wherein the data indicative of at least a type forthe second appliance comprises a Source Product Description (“SPD”)assigned to the second appliance.